package com.leador.map.api.location;

import android.location.Location;
import android.os.Parcel;
import android.os.Parcelable;

/**
 * 定位结果类。
 */
public class MapLocation extends Location implements Parcelable{
    public static final Parcelable.Creator<MapLocation> CREATOR = new MapLocationCreator();
    private String province;
    private String city;
    private String district;
    private String cityCode;
    private String adCode;
    private String errorInfo=null;
    private String address="";

    /**
     * 获取地址。
     * @return
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置地址。
     * @param address 地址。
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * 获取错误信息。
     * @return 错误信息。
     */
    public String getErrorInfo() {
        return errorInfo;
    }

    /**
     * 设置错误信息。
     * @param errorInfo 错误信息。
     */
    public void setErrorInfo(String errorInfo) {
        this.errorInfo = errorInfo;
    }

    /**
     * 构造MapLocation。
     * @param provider 定位提供者名称。
     */
    public MapLocation(String provider) {
        super(provider);
    }

    /**
     * 构造MapLocation。
     * @param location 位置信息
     */
    public MapLocation(Location location) {
        super(location);
    }

    /**
     * 获取省份名称。
     * @return 省份名称。
     */
    protected String getProvince() {
        return province;
    }

    /**
     * 设置省份名称。
     * @param province 省份名称。
     */
    protected void setProvince(String province) {
        this.province = province;
    }

    /**
     * 所在城市名称。
     * @return 城市名称。
     */
    protected String getCity() {
        return city;
    }

    /**
     * 设置城市名称。
     * @param city 城市名称。
     */
    protected void setCity(String city) {
        this.city = city;
    }

    /**
     * 获取区的名称。
     * @return 区名称。
     */
    public String getDistrict() {
        return district;
    }

    /**
     * 设置区的名称。
     * @param district 区名称。
     */
    protected void setDistrict(String district) {
        this.district = district;
    }

    /**
     * 获取城市编码。
     * @return 城市编码。
     */
    public String getCityCode() {
        return cityCode;
    }

    /**
     * 设置城市编码。
     * @param cityCode 城市编码。
     */
    protected void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    /**
     * 获取区域编码。
     * @return 区域编码。
     */
    public String getAdCode() {
        return adCode;
    }

    /**
     * 设置区域编码。
     * @param adCode 区域编码。
     */
    protected void setAdCode(String adCode) {
        this.adCode = adCode;
    }

    public void writeToParcel(Parcel parcel, int flags)
    {
        super.writeToParcel(parcel,flags);
        parcel.writeString(this.province);
        parcel.writeString(this.city);
        parcel.writeString(this.district);
        parcel.writeString(this.cityCode);
        parcel.writeString(this.adCode);
        parcel.writeString(this.address);
    }

    public MapLocation(Parcel parcel)
    {
        super(Location.CREATOR.createFromParcel(parcel));
        this.province = parcel.readString();
        this.city = parcel.readString();
        this.district = parcel.readString();
        this.cityCode = parcel.readString();
        this.adCode = parcel.readString();
        this.address = parcel.readString();
    }

}
